
# 此代码用于对中文命名写真图片的重命名，将其改成英文命名，方便后续使用。
# 代码分为两个部分，第一部分是将所有空格改成 -，第二部分是将第一个 - 改成.，并将第二个 - 之后的内容翻译成英文。
# 代码使用了translators库来进行翻译，需要先安装该库。
# 代码使用了input函数来获取用户输入的文件夹路径，需要用户手动输入。


import os
import re
import translators as ts


def rename_images():
    # 获取当前文件夹路径
    folder_path = input("请输入要处理的文件夹路径: ")
    for filename in os.listdir(folder_path):
        if filename.endswith(('.png', '.jpg', '.jpeg')):
            # 第一步：将所有空格改成 -
            name = filename.replace(" ", "-")
            # 提取文件名和扩展名
            base_name, ext = os.path.splitext(name)
            # 定义替换映射
            replacement_map = {
                '女': 'Female',
                '男': 'Male',
                '情侣': 'Couple',
                '制服': 'Uniform',
                '内衣': 'Lingerie'
            }
            # 对整个文件名进行替换
            for key, value in replacement_map.items():
                base_name = base_name.replace(key, value)

            parts = base_name.split("-", 2)
            if len(parts) > 2:
                print(parts)
                try:
                    # 第二步：翻译第一个 - 和第二个 - 之间的内容
                    translated_part = ts.translate_text(parts[1], translator='alibaba', from_language='zh',
                                                        to_language='en')
                    # 将第一个 - 改成 .
                    new_base_name = f"{parts[0]}.{translated_part}-{parts[2]}"
                except Exception as e:
                    print(f"Error translating {parts[1]}: {e}")
                    continue
            else:
                new_base_name = base_name
            # 生成新文件名

            new_name = new_base_name + ext
            # 重命名文件
            old_path = os.path.join(folder_path, filename)
            new_path = os.path.join(folder_path, new_name)
            os.rename(old_path, new_path)
            print(f"Renamed {filename} to {new_name}")


if __name__ == "__main__":
    rename_images()
